package org.example.algorithms;

import java.util.HashMap;

public class DuplicateNumber {

    /**
     * 判断 {@arr} 是否有重复元素
     * @param arr
     * @return
     */
    static boolean hasDuplicateEntry(int[] arr) {
        // 记录出现的次数
        HashMap<Integer, Integer> records = new HashMap<>();
        for (int i = 0; i < arr.length; i++) {
            Integer k = arr[i];
            Integer record = records.get(k);
            // 没有出现过
            if ( record == null) {
                record = 1;
            }
            // 出现过
            else {
                record += 1;
            }
            records.put(k, record);
//            System.out.println(records + " :: " + record);
            if (record > 1) {
                return true;
            }
        }
        return false;
    }

    /**
     * 打印判断结果
     * @param arr
     */
    public static void printResult(int[] arr) {
        if (!hasDuplicateEntry(arr)) {
            System.out.println("NO");
        } else {
            System.out.println("YES");
        }
    }

    public static void main(String[] args) {
        // 测试没有重复
        int[] arr = new int[]{1, 2, 3};
        printResult(arr);

        // 测试有重复
        int[] arr1 = new int[]{1, 2, 1};
        printResult(arr1);

    }
}
